<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 
        html
        css
        javaScript (ECMAScript) ECMA组织（前身为欧洲计算机制造商协会：制定和发布脚本语言的规范）
        97年 es1
        98年 es2
        99年 es3 未发布
        07年 es4 过于激进 未发布
        09年 es5
        2015年 es6 ECMA2015
        2016年 es7
        2018  es9
        2019 es10
        平时es6 泛指 es2015之后所有的新标准
        
     -->
     <button class="btn1">btn1</button>
     <button class="btn2">btn2</button>
     <button class="btn3">btn3</button>
     <script>
         var a = 1;
         console.log(a);
        // 声明变量使用 let  声明常量使用const  这个到底是常量还是变量参考标准是栈内存中存储的值是否发生变化
        // 数据类型：
        // 基本数据类型：boolean null undefine string number
        // 引用数据类型：array object
        let aa = '123';
        aa = 123;

        let obj = {
            name:'tom'
        }
        obj.sex = 'nan';
        // obj是个常量还是个变量

        // 注：当变化的量使用const去声明就会报错
        let bb = 123;
        bb = 456;
        console.log(bb);
        let cc = {
            name:'jack'
        }
        cc.age = 18;
        console.log(cc);
        console.log('-------------------------');
        console.log(dd);//变量提升
        var dd;//声明未赋值
        var dd = '123';
        // console.log(ee);//let const 不能变量提升
        let ee;
        // let ee = '123'//let const 不能重复声明

        // 需求：获取每一个按钮的下标
        const btnArr = document.querySelectorAll('button');
        console.log(btnArr);
        // 什么是伪数组？什么是真数组？
        // 能遍历 具有length 
        // 真数组具有数组原型对象上的方法 而伪数组没有

        // let const具有块级作用域
        for(let i=0;i<btnArr.length;i++){
            btnArr[i].onclick = function(){
                console.log(i);
            }
        }

        // const
        const obj_1 = {
            name:'tom'
        }
        obj_1.sex = 'nan';

        let obj_2 = {
            name:'jack'
        }
        obj_2 = {
            name:'xiaoli'
        }
        console.log(obj_2);
        
     </script>
</body>
</html>